home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 1998 December / Ultimate Collection of Shareware - Software of the Month Club (December 1998) (Volume 256).ISO / mac / Desktop Publishing / DesignWorks / Design Kits / PCB Shared Items / Error Scripts / PCB Errors < prev    next >
Text File  |  1997-05-22  |  4KB  |  115 lines

  1. {
  2.   Error checking script for Generic PCB Design Kit
  3.   C. Dewhurst, May 13, 1996
  4.   ⌐1996 Capilano Computing Systems Ltd.
  5.   
  6.   This script checks for:
  7.   
  8.   - Devices without a package code
  9.     - Bad device names
  10.     - Bad or duplicate pin numbers
  11.     - Bad or duplicate signal names
  12. }
  13. $CHECK(This script is intended only for FLAT mode designs) $PURE $PHYSICAL
  14. $PROGRESS $OFF
  15. {
  16.   Listing defaults
  17. }
  18. $CREATEREPORT($TEMPPATH$DESIGNNAME Errors)
  19. $SIGSOURCE(Ground)
  20. $SIGSOURCE(Plus5V) &Power
  21. $DESIGNSIGSOURCE &SigSources
  22. $AUTONUMBER(3)
  23. $BUSNAMEON(_)
  24. $SETVAR(_AnyErrors, 0)
  25. {
  26.   Issue a warning if any devices have no package code
  27. }
  28. $FIND $DEVICES $AND($ERRORBITOFF(8),$NOT(&Package))
  29. $SORT $DEVICES $DEVNAME
  30. $COMBDEVSON
  31. $DEVICES\$OBJECT $DEVLOC$NEWLINE\$ERRBIT 8$NEWLINE\$MESSAGE\Device $DEVNAME on page $PAGE has no Package attribute.
  32. $SETVAR(_AnyErrors, $PLUS(&_AnyErrors, $DEVCOUNT))
  33. {
  34.   Check for multiple package codes in same package
  35. }
  36. $FIND $DEVICES
  37. $SORT $DEVICES $DEVNAME
  38. $COMBDEVSON
  39. $FIND $NOCLEAR $DEVICES $GT($COUNTVALUES(&Package), 1) $ERRORBITOFF(9)
  40. $SORT $DEVICES $DEVNAME
  41. $COMBDEVSON
  42. $DEVICES\$OBJECT $DEVLOC$NEWLINE\$ERRBIT 9$NEWLINE\$MESSAGE Device $DEVNAME on page(s) $PAGE has inconsistent package codes.
  43. $SETVAR(_AnyErrors, $PLUS(&_AnyErrors, $DEVCOUNT))
  44. {
  45.   Check for duplicate pin numbers
  46. }
  47. $FIND $DEVICES
  48. $SORT $DEVICES $DEVNAME
  49. $COMBDEVSON
  50. $DEVPINFORMAT $GT($SAMEPINCOUNT, 1)
  51. $FIND $SIGNALS
  52. $FIND $NOCLEAR $DEVICES $NONBLANK($MERGE$PINS) $ERRORBITOFF(10)
  53. $SORT $DEVICES $DEVNAME
  54. $COMBDEVSON
  55. $DEVICES\$OBJECT $DEVLOC$NEWLINE\$ERRBIT 10$NEWLINE\$MESSAGE Device $DEVNAME on page(s) $PAGE has duplicate pin numbers.
  56. $SETVAR(_AnyErrors, $PLUS(&_AnyErrors, $DEVCOUNT))
  57. {
  58.   Check for invalid pin numbers
  59. }
  60. $DEVPINFORMAT $REGEXP(\D?|.*\D.*, $PINNUM)
  61. $FIND $DEVICES $NONBLANK($PINS) $ERRORBITOFF(11)
  62. $SORT $DEVICES $DEVNAME
  63. $COMBDEVSON
  64. $DEVICES\$OBJECT $DEVLOC$NEWLINE\$ERRBIT 11$NEWLINE\$MESSAGE Device $DEVNAME on page(s) $PAGE has invalid pin numbers.
  65. $SETVAR(_AnyErrors, $PLUS(&_AnyErrors, $DEVCOUNT))
  66. {
  67.   Check for bad device names
  68. }
  69. $FIND $DEVICES $NOT($REGEXP(\w+, $DEVNAME)) $ERRORBITOFF(0)
  70. $SORT $DEVICES $DEVNAME
  71. $COMBDEVSON
  72. $DEVICES\$OBJECT $DEVLOC$NEWLINE\$ERRBIT 0$NEWLINE\$MESSAGE Device $DEVNAME on page(s) $PAGE has an invalid name.
  73. $SETVAR(_AnyErrors, $PLUS(&_AnyErrors, $DEVCOUNT))
  74. {
  75.   Check for bad signal names
  76. }
  77. $UNNAMEDSIGS(????)
  78. $FIND $SIGNALS $NOT($REGEXP(\w+, $SIGNAME)) $ERRORBITOFF(0)
  79. $SORT $SIGNALS $SIGNAME
  80. $FIND $DEVICES
  81. $SIGNALS\$OBJECT $SIGLOC$NEWLINE\$ERRBIT 0$NEWLINE\$MESSAGE Signal $SIGNAME on page(s) $PAGE has an invalid name.
  82. $SETVAR(_AnyErrors, $PLUS(&_AnyErrors, $SIGCOUNT))
  83. {
  84.   Check for duplicate signal names
  85. }
  86. $FIND $SIGNALS
  87. $COMBSIGSON
  88. $SORT $SIGNALS $SIGNAME
  89. $FIND $NOCLEAR $SIGNALS $COUNT(2) $ERRORBITOFF(1)
  90. $SORT $SIGNALS $SIGNAME
  91. $SIGNALS\$OBJECT $SIGLOC$NEWLINE\$ERRBIT 1$NEWLINE\$MESSAGE Signals $SIGNAME on page(s) $PAGE have duplicate names.
  92. $SETVAR(_AnyErrors, $PLUS(&_AnyErrors, $SIGCOUNT))
  93. {
  94.   Check for unconnected signals
  95. }
  96. $FIND $DEVICES
  97. $FIND $SIGNALS $NUMPINS(1) $NOT($NUMPINS(2)) $ERRORBITOFF(2)
  98. $COMBSIGSOFF
  99. $SORT $SIGNALS $SIGNAME
  100. $SIGNALS\$OBJECT $SIGLOC$NEWLINE\$ERRBIT 2$NEWLINE\$MESSAGE Signals $SIGNAME on page(s) $PAGE has only one pin connection.
  101. $SETVAR(_AnyErrors, $PLUS(&_AnyErrors, $SIGCOUNT))
  102. {
  103.   Write out $TITLE line for ErrorScript window
  104. }
  105. \$TITLE
  106. &_AnyErrors errors found!  Error file is $TEMPPATH$DESIGNNAME Errors.
  107. {
  108.   Close the report output to the text file.
  109.   All subsequent output will go to ErrorScript as the file name.
  110. }
  111. $CLOSEREPORT
  112. {
  113.   Return report file name for ErrorScript
  114. }
  115. $TEMPPATH$DESIGNNAME Errors